package van.planifolia.demo03;

import java.lang.annotation.*;

/**
 * Created by Intellij IDEA<br>
 *
 * @author Planifolia.Van
 * @version 1.0
 * @date 2022/10/26 17:18
 */
//可以加在类上
@My
//甚至可以加在类泛型上
public class MyAnnotationDemo02<@My T> {
    //可以加在字段上
    @My
    private String name;
    //可以加在方法上面
    @My
    //可以加在参数上
    public void show(@My String arg){
        //可以加在局部变量上
        @My
        int a;
        System.out.println("show");
    }


}
// 用来标注一个注解可以用在那些上面
@Target({ElementType.TYPE,ElementType.TYPE_PARAMETER,ElementType.FIELD,ElementType.METHOD
        ,ElementType.PARAMETER,ElementType.LOCAL_VARIABLE,ElementType.ANNOTATION_TYPE
        })
// 用来标注生成文档是否显示
@Documented
//标注注解在哪个阶段生效，分别为源码阶段，class阶段，运行阶段，
@Retention(RetentionPolicy.CLASS)
//@Retention(RetentionPolicy.SOURCE)
//@Retention(RetentionPolicy.RUNTIME)
//标注这个注解是否可以继承
@Inherited
@interface My{

}
//甚至可以加在注解上
@My
@interface MySP{

}
